(function($){

	$.fn.editor = function(options) {

		var settings = $.extend({}, $.fn.editor.defaults, options);
		
		if(settings.send != null)
		{
			var editorTexto = $(this);
			var texto = editorTexto.find(".texto");
			var sombra = $("<div align='center' class='sombra ui-widget-overlay ui-corner-all'></div>").css({width: texto.width()+1, height: texto.height()+1, position: "absolute", left: texto.position().left, top: texto.position().top});
			editorTexto.append(sombra);
			var img = $("<br><img class='ui-state-default ui-corner-all' src='/img/progress.gif'/>");
			sombra.append(img);
			editorTexto.addClass("ui-overlay");
			var contenido = texto.html();
			if(settings.clean)
				texto.html("");
			$.post(settings.send,{contenido: contenido},
					function(data){
						if(data.error)
						{
							texto.html(contenido);
							mensajeSistema("No se pudo insertar el comentario");
						}else settings.callback(data);
						editorTexto.find(".sombra").remove();
					});
			return;
		}
		/*$(document).click(function(){
			if($("#texto-listaEmoticonos").is(":visible"))
			$("#texto-listaEmoticonos").hide();
		});*/

		$(this).addClass("texto").attr("align","left");
		//var texto = $("<div>").html($(this).html()).addClass("ui-widget ui-widget-content ui-corner-all").attr("contenteditable","true").attr("border","0").attr("id",$(this).attr("id")+"-texto").css("overflow","auto");
		
		var texto = $("<div>").html($(this).html()).addClass("texto ui-widget ui-widget-content ui-corner-all")
							                       .attr({contenteditable: true, border:0, id:$(this).attr("id")+"-texto"})
							                       .css("overflow","auto");
		

		texto.click(function(){
			texto.blur();
			texto.focus();
		});
		
		var barra = $("<div>").html(/*'<span class="fg-buttonset fg-buttonset-multi">'+
			'<button class="negrita fg-button ui-state-default ui-corner-left">'+
				'<b>B</b>'+
			'</button>'+
			'<button class="italic fg-button ui-state-default">'+
				'<i>I</i>'+
			'</button>'+
			'<button class="tachado fg-button ui-state-default">'+
			'<del>S</del>'+
			'</button>'+
			'<button class="subrayado fg-button ui-state-default ui-corner-right">'+
				'<u>U</u>'+
			'</button>'+
		'</span>'+*/
		'<span class="fg-buttonset">'+
		'<button class="emoticono ui-state-default ui-corner-all">'+
		'<img src="img/emoticons/icono.png">'+
	'</button>'+
	'<button class="youtube ui-state-default ui-corner-all">'+
		'<img src="img/youtube.png">'+
	'</button>'+
		'</span>').addClass("fg-toolbar ui-widget-header ui-corner-all ui-helper-clearfix");
		
		barra.find('button').hover(
				function(){
					$(this).addClass("ui-state-hover");
				},
				function(){
					$(this).removeClass("ui-state-hover");
					
				});
		
		$(this).html("");
		$(this).append(barra,texto);

		
		
		
		/*$(this).find(".tachado").click(function(){
			if($(this).hasClass("ui-state-active"))
				$(this).removeClass("ui-state-active");
			else
				$(this).addClass("ui-state-active");
			document.execCommand('strikethrough',null,false);
		});
		
		$(this).find(".negrita").click(function(){
			if($(this).hasClass("ui-state-active"))
				$(this).removeClass("ui-state-active");
			else
				$(this).addClass("ui-state-active");
			document.execCommand('bold',null,false);
		});

		$(this).find(".italic").click(function(){
			if($(this).hasClass("ui-state-active"))
				$(this).removeClass("ui-state-active");
			else
				$(this).addClass("ui-state-active");
			document.execCommand('italic',null,false);
		});

		$(this).find(".subrayado").click(function(){
			if($(this).hasClass("ui-state-active"))
				$(this).removeClass("ui-state-active");
			else
				$(this).addClass("ui-state-active");
			document.execCommand('underline',null,false);
		});

		*/
		

		$(this).find(".emoticono").click(function(){
			
			//document.execCommand('insertimage',null,"imagen");
			//var contenedor = $('<div class="fg-menu-container ui-widget ui-widget-content ui-corner-all" style="width: 180px; bottom: auto; top: 23px; right: auto; left: 0px; display: block;">');
			var contenedor = $("#texto-listaEmoticonos-"+texto.attr("id"));
			if(contenedor.length == 0)
			{
				var posicionador = $(this);
				$.getJSON('consultasAjax.php',{seccion:"emoticonos", desde:0 , cantidad: 20},
						function(data){
							contenedor = $('<div id="texto-listaEmoticonos-'+texto.attr("id")+'" class="ui-widget ui-widget-content ui-corner-all"></div>');
							$.each(data, function (i, emoticono) {
								contenedor.append("<a href='javascript:void(0)'><img src='mostrarEmoticono.php?id="+emoticono.archivo+"' border='0'></a>");
							});
							
							contenedor.find('img').hover(
									function(){
										$(this).addClass("ui-state-hover");
									},
									function(){
										$(this).removeClass("ui-state-hover");
										
									});
	
							contenedor.find('img').click(
									function(){
										texto.append("<img src='"+$(this).attr("src")+"'>");
										contenedor.fadeOut("normal");
										texto.blur();
										texto.focus();
									});
							
							$(document.body).append(contenedor);
							contenedor.css("position","absolute");
							contenedor.css({left: posicionador.offset().left, top: posicionador.offset().top+posicionador.height() });
							contenedor.css("z-index","3000");
							contenedor.show();
							contenedor.fadeIn("normal");
					});

				
				
				//contenedor.fadeIn("normal");
			}else{
				if(contenedor.is(":visible"))
				{
					contenedor.fadeOut("normal");
					//contenedor.hide();
					//$(document).unbind('click',ocultarEmoticonos);
					//$(document).unbind('click',ocultarEmoticonos);
				}
				else
				{
					
					contenedor.fadeIn("normal");
					//contenedor.show();
					//$(document).click(ocultarEmoticonos);
				}
				
				contenedor.css({left: $(this).offset().left, top: $(this).offset().top+$(this).height() });
				contenedor.css("z-index","3000");
			}
			
			
			
			
		});
		
		$(this).find(".youtube").click(function(){
			boton = $("<a>");
			 boton.attr("href","javascript:void(0)");
			 boton.addClass("dialog_link ui-state-default ui-corner-all");
			 boton.text("Buscar");
			 boton.hover(
						function() { $(this).addClass('ui-state-hover'); }, 
						function() { $(this).removeClass('ui-state-hover'); }
					);
					
			 boton.click(
						function() {
							$("#paginadorVideos").pager({ pagenumber: 1, pagecount: 15, buttonClickCallback: paginarVideos });
						    paginarVideos(1);
							
							
						}
					);
			 
			var dialogo = $('<div align="center" id="dialog-youtube" title="Videos de Youtube"><p>'+
					'Descripcion: <input id="busqueda-youtube" class="text ui-widget-content ui-corner-all" type="text" id="busqueda-youtube"> '+
					'</p>'+
					'<table><tr id="listaVideos"></tr></table>'+
					'<div align="center" id="paginadorVideos" class="paginador"/></div>');
			dialogo.find("p").append(boton);
			dialogo.dialog({
				autoOpen: true,
				bgiframe: true,
				width: 550,
				modal: true,
				draggable:false,
				resizable:false
			});
		});

		
		if(settings.onEnter != null)
		{
			texto.keydown(function(e)
			{
				if(e.keyCode == 13 && !e.shiftKey)
				{
					settings.onEnter(texto);
					
				}
			});
			
			texto.keyup(function(e)
					{
						if(e.keyCode == 13 && !e.shiftKey)
						{
							texto.html("");
							texto.blur();
							texto.focus();
							
						}
					});

			
		}
		texto.height(settings.height);
		$(this).width(settings.width);
		texto.blur();
		texto.focus();

		//Funcion para insertar videos de youtube
		function paginarVideos(paginaActual){
				var cantidadRecoger=3, inicio=(paginaActual-1)*cantidadRecoger+1;

			 $.getJSON("consultasAjax.php",{seccion:"youtube", searchTerm:$("#busqueda-youtube").val(),startIndex:inicio, maxResults:cantidadRecoger, queryType:"all"},
				function(data)
				{
				 	if(data.cantidad > 0)
				 	{
				 		var listaVideos = $("#listaVideos");
				 		listaVideos.html("<br>");
				 		$.each(data.videos, function(i,video){
				 			
				 			var botonInser = $("<a>");
				 			botonInser.attr("href","javascript:void(0)");
				 			botonInser.addClass("dialog_link ui-state-default ui-corner-all");
				 			botonInser.text("Insertar");
				 			botonInser.hover(
										function() { $(this).addClass('ui-state-hover'); }, 
										function() { $(this).removeClass('ui-state-hover'); }
									);
									
				 			botonInser.click(function(){
								//var ed = $('textarea.tinymce').tinymce(), dom = ed.dom;
								//tinyMCE.execCommand('mceInsertContent', false, '<span align="center"><object class="ui-state-default ui-corner-all" width="150" height="160"><param movie="http://www.youtube.com/v/'+video.id+'&amp;f=videos&amp;app=youtube_gdata/&amp;autoplay=0"><param wmode="transparent"><embed wmode="transparent" type="application/x-shockwave-flash" src="http://www.youtube.com/v/'+video.id+'&amp;f=videos&amp;app=youtube_gdata/&amp;autoplay=0" width="150" height="160"></object></span>');
				 				//editorTexto.find(".texto").html();
								texto.append("[youtube]"+video.id+"[/youtube]");
								//tinyMCE.execCommand('mceInsertContent', false, "[youtube]"+video.id+"[/youtube]");
								$("#dialog-youtube").dialog("close");
							});
				 			var videoDom = $('<td align="center"><br><div><object class="ui-state-default ui-corner-all" width="150" height="160"><param movie="http://www.youtube.com/v/'+video.id+'&amp;f=videos&amp;app=youtube_gdata/&amp;autoplay=0"><param wmode="transparent"><embed wmode="transparent" type="application/x-shockwave-flash" src="http://www.youtube.com/v/'+video.id+'&amp;f=videos&amp;app=youtube_gdata/&amp;autoplay=0" width="150" height="160"></object></div><br></td>');
				 			//var videoDom = $('<td><div>aaaaaaa</div></td>');

				 			videoDom.append(botonInser);
				 			listaVideos.append(videoDom);
				 		});
				 		
				 		
					$("#paginadorVideos").pager({ pagenumber: paginaActual, pagecount: (Math.ceil(data.cantidad/cantidadRecoger)), buttonClickCallback: paginarVideos });
				 	}else
				 	{
				 		$("#listaVideos").html("No se ha encontrado ningun video");
				 		$("#paginadorVideos").pager({ pagenumber: paginaActual, pagecount: 1, buttonClickCallback: paginarEventos });
				 	}
					
					$('.paginador-boton, ul#icons li').hover(
						function() { $(this).addClass('ui-state-hover'); }, 
						function() { $(this).removeClass('ui-state-hover'); }
					);
					
				});
				//$("#blog").fadeIn("slow");
		}
		
	};
	

	
	function getContent(){
		return this.texto;
	};
	
	
	
	
	$.fn.editor.defaults  = {
			onEnter : null,
			height: 35,
			width: 390,
			send: null,
			clean: true
	};
	

	
	
})(jQuery);